import {BasicColumn} from '/@/components/Table';
import {FormSchema} from '/@/components/Table';
import {rules} from '/@/utils/helper/validator';
import {render} from '/@/utils/common/renderUtils';
//列表数据
export const columns: BasicColumn[] = [
  {
    title: '图片',
    align: "center",
    dataIndex: 'img',
    customRender: render.renderImage1,
  },
  {
    title: '活动名称',
    align: "center",
    dataIndex: 'activityName',
  },
  {
    title: '跳转方式',
    align: "center",
    dataIndex: 'linkType_dictText'
  },
  {
    title: '去向',
    align: "center",
    dataIndex: 'url_dictText'
  },
  {
    title: '顺序',
    align: "center",
    dataIndex: 'sequence'
  },
];
//查询数据
export const searchFormSchema: FormSchema[] = [];
//表单数据
export const formSchema: FormSchema[] = [
  {
    label: '图片',
    field: 'img',
    component: 'JImageUpload',
    componentProps: {},
    dynamicRules: ({model, schema}) => {
      return [
        {required: true, message: '请输入图片!'},
      ];
    },
  },
  {
    label: '活动名称',
    field: 'activityName',
    component: 'Input',
  },
  {
    label: '跳转方式',
    field: 'linkType',
    component: 'JDictSelectTag',
    componentProps:{
      dictCode:"pic_link_type",
      stringToNumber: true
    },
  },
  {
    label: '去向',
    field: 'url',
    component: 'JDictSelectTag',
    componentProps:{
      dictCode:"a_company,name,id",
      stringToNumber: true
    },
    ifShow: ({ values }) => {
      return values.linkType == 2;
    },
  },
  {
    label: '去向',
    field: 'url',
    component: 'Input',
    ifShow: ({ values }) => {
      return values.linkType == 1;
    },
  },
  {
    label: '顺序',
    field: 'sequence',
    component: 'Input',
    dynamicRules: ({model, schema}) => {
      return [
        {required: true, message: '请输入顺序!'},
        {pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
      ];
    },
  },
  // TODO 主键隐藏字段，目前写死为ID
  {
    label: '',
    field: 'id',
    component: 'Input',
    show: false
  },
];


/**
 * 流程表单调用这个方法获取formSchema
 * @param param
 */
export function getBpmFormSchema(_formData): FormSchema[] {
  // 默认和原始表单保持一致 如果流程中配置了权限数据，这里需要单独处理formSchema
  return formSchema;
}
